# 1 载入matplotlib的绘图模块pyplot
import matplotlib.pyplot as plt
import numpy as np

x = np.linspace(0, 10, 1000)
y = np.sin(x)
z = np.cos(x ** 2)

# 2 调用figure()创建一个Figure对象，并且它将成为当前Figure对象。也可以不创建Figure对象而直接调用接下来的plot()进行绘图，
# 这时matplotlib会自动创建一个Figure对象。figsize参数指定Figure对象的宽度和高度，单位为英寸。此外还可以用dpi参数指定Figure
# 对象的分变量，即每英寸所表示的像素数，这里使用默认值80.
plt.figure(figsize=(8, 4))
# 3 第三个参数“b--”指定曲线的颜色和线型，它通过一些易记的符号指定曲线的样式。其中“b”表示蓝色，“--”表示线型为虚线。
plt.plot(x, y, label="$sin(x)$", color="red", linewidth=2)
# 4
plt.plot(x, z, "b--", label="$cos(x^2)$")
# 5 xlabel和ylabel分别设置X、Y轴的标题文字。
plt.xlabel("Time(s)")
plt.ylabel("Volt")
# 设置子图的标题
plt.title("PyPlot First Example")
# xlim、ylim：分别设置X、Y轴的显式范围
plt.ylim(-1.2, 1.2)
# legend：显式图示，即图中表示每条曲线的标签（label）和样式的矩形区域。
plt.legend()
# 6 plt.show()显式绘图窗口，在通常的运行情况下，show（）将会阻塞程序运行，直到用户会关闭绘图窗口。
# plt.show()
# plt.savefigO将当前的Figure对象保存成图像文件，图像格式由图像文件的扩展
# 名决定。下面的程序将当前的图表保存为test.png,并且通过dpi参数指定图像的分辨率为120,
# 因此输出图像的宽度为8*120 = 960个像素。
# 如果关闭了图表窗口，则无法使用savefig〇保存图像。实际上不需要调用show〇显示
# 图表，可以直接用savefigO将图表保存成图像文件。使用这种方法可以很容易编写批
# 量输出图表的程序。
plt.savefig("test.png", dpi=120)
